package de.hdm.articastle.ballistics;

import android.graphics.Point;

public class Ballistic {
	public static double g = 9.81;

	/**
	 * Berrechnet die Wurfparabel ohne Luftwiderstand mit einberechnung
	 * des Windes. Es wird der Startpunkt, die Geschwindigkeit in x, sowie
	 * y Richtung, die Windgeschwindigkeit, sowie die aktuelle Zeit uebergeben.
	 * Zurueck bekommt man den Punkt an dem sich die Kugel zu dieser Zeit
	 * befindet.
	 * 
	 * @param start
	 * @param vx
	 * @param vy
	 * @param time
	 * @return
	 */
	
	/**
	 * Das "-1" war eine kleine Modifikation von mir. Die Flugbahn wird dadurch
	 * drastisch beeinflusst. In meinem Fall jedoch kamen bessere Flugbahnen.
	 * 
	 * Kai
	 */
	
	/**
	 * Die -1 hat nur den Punkt um einen Pixel nach oben bzw. links verschoben?
	 * Leider hab ich wohl bei der Formel einen Tippfehler gemacht gehabt, so 
	 * dass sich die Geschwindigkeit nicht wirklich verringert hat.
	 * 
	 * Der Funktion als Punkt immer den Startpunkt uebergeben und die Zeit
	 * in Sekunden.
	 * 
	 * Orignal Formel: y = v0y*t - g/2 * t^2
	 * bzw. x = v0x*t - w/2 * t^2
	 */
	
	public static Point calculateParabola(Point start, double vx, double vy,
			double wind, double time) {
		
		Point p = new Point();
		p.x = (int)(vx * time - (wind/2 * Math.pow(time, 2)) + start.x);
		p.y = (int)(vy * time - (g/2 * Math.pow(time, 2)) + start.y);
		
		
		/**
		 * Testweise durchgeführte Modifikationen
		 */
	//	start.x = (int)(vx * (wind/2) * Math.pow(time, 2) + (start.x *0.9));
	//	start.y = (int)(vy * (g/2) * Math.pow(time, 2) + ( start.y *0.9 ));
		
		return p;
	}
}
